package com.my.jli.Service;

import com.my.jli.entity.Student;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;

/**
 * @ClassName StudentService
 * @Description
 * @Author MaYu
 * @Date 2022/1/20 19:04
 * @Version 1.0
 **/
@Service
public interface StudentService {


    List<Student> getAll();

    Page<Student> getAll(Integer tid, Pageable pageable);

    Student getById(Integer id);

    Student getByNum(String num);

    List<Student> getByTid(Integer tid);

    Student getByNumAndTid(String num, Integer tid);

    /**
     * 带查询的分页获取
     * @param example 要匹配的学生对象
     * @param pageable pageable
     * @return 分页后的查询信息
     */
    Page<Student> getAll(Example<Student> example, Pageable pageable);

    List<Student> login(String sNum, String sPwd);

    /**
     * 获取所有年级名称
     * @return 含年级名称的set集合
     */
    Set<String> getAllGrade();

    /**
     * 获取所有班级名称
     * @return 含班级名称的set集合
     */
    Set<String> getAllClazz();

    //更新学生信息
    void update(Student student);

    //根据id删除学生信息
    void deleteById(Integer id);

    Student saveStudent(Student student);
}
